package cn.flying.cloud.uid.api;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 全局单据编号服务接口
 *
 * @author: admin
 * @date: 2025年03月26日 09:14
 * @version: 1.0
 */
public interface UidServiceApi {

    /**
     * 获取一个分布式全局ID
     * 带缓冲区
     *
     * @return
     */
    @GetMapping("getUID")
    String getUid();

    /**
     * 获取uid，默认本地雪花算法
     *
     * @return
     */
    @GetMapping("getLocalUid")
    String getLocalUid();

    /**
     * 获取一个全局的单据编号
     *
     * @param prefix
     * @param length
     * @return
     */
    @PostMapping("getDocNo")
    String getDocNo(@RequestParam("prefix") String prefix, @RequestParam("length") int length);
}
